home *** CD-ROM | disk | FTP | other *** search
/ Freelog 47 / Freelog047.iso / Bas / Jeu / Aitchu / Aitchu[1].swf / scripts / frame_38 / DoAction.as
Text File  |  2003-06-10  |  7KB  |  240 lines

  1. function CEnemy(MaxResurrecTime, MaxPowerVal, ClipEnemy)
  2. {
  3.    this.MaxBlink = 10;
  4.    this.BlinkValue = this.MaxBlink;
  5.    this.CurrentResurrectionTime = 0;
  6.    this.MaxResurrectionTime = MaxResurrecTime;
  7.    this.MaxPower = MaxPowerVal;
  8.    this.CurrentPower = this.MaxPower;
  9.    this.Clip = ClipEnemy;
  10.    this.ClipSaveX = this.Clip._x;
  11.    this.ClipSaveY = this.Clip._y;
  12. }
  13. function EnemyHitBySprite(EnemiesObjArray, SpriteObj)
  14. {
  15.    var HitValue;
  16.    var CptArray;
  17.    var SpriteBounds;
  18.    var CurrentEnemy;
  19.    var XValue;
  20.    SpriteBounds = SpriteObj.Clip.getBounds(_root);
  21.    if(SpriteObj.Direction == G_RIGHT_DIRECTION)
  22.    {
  23.       XValue = SpriteBounds.xMax;
  24.    }
  25.    else
  26.    {
  27.       XValue = SpriteBounds.xMin;
  28.    }
  29.    HitValue = 0;
  30.    CptArray = 0;
  31.    while(!HitValue && CptArray < EnemiesObjArray.length)
  32.    {
  33.       CurrentEnemy = EnemiesObjArray[CptArray];
  34.       HitValue = CurrentEnemy.Clip.hitTest(XValue,SpriteBounds.yMin,true) || CurrentEnemy.Clip.hitTest(XValue,SpriteBounds.yMax,true) || CurrentEnemy.Clip.hitTest(XValue,SpriteBounds.yMin + (SpriteBounds.yMax - SpriteBounds.yMin) / 2,true);
  35.       CptArray++;
  36.    }
  37.    if(HitValue && !CurrentEnemy.IsBlinking() && !CurrentEnemy.IsDead())
  38.    {
  39.       if(CurrentEnemy.ApplyTouched())
  40.       {
  41.          CptArray--;
  42.          return CptArray;
  43.       }
  44.       return -1;
  45.    }
  46.    return -1;
  47. }
  48. function EnemyHitByShurikensOfSprite(EnemiesObjArray, SpriteObj, ShurikensBonusMovieClip)
  49. {
  50.    var HitValue;
  51.    var CptShuriken;
  52.    var CptArray;
  53.    var SpriteBounds;
  54.    var CurrentEnemy;
  55.    var XValue;
  56.    var AddScore = 0;
  57.    CptShuriken = 0;
  58.    while(CptShuriken < SpriteObj.ShurikensArray.length)
  59.    {
  60.       if(SpriteObj.ShurikensArray[CptShuriken]._visible)
  61.       {
  62.          HitValue = 0;
  63.          CptArray = 0;
  64.          while(!HitValue && CptArray < EnemiesObjArray.length)
  65.          {
  66.             CurrentEnemy = EnemiesObjArray[CptArray];
  67.             HitValue = CurrentEnemy.Clip.hitTest(SpriteObj.ShurikensArray[CptShuriken]._x,SpriteObj.ShurikensArray[CptShuriken]._y,true);
  68.             CptArray++;
  69.          }
  70.          if(HitValue && !CurrentEnemy.IsBlinking() && !CurrentEnemy.IsDead())
  71.          {
  72.             if(CurrentEnemy.ApplyTouched())
  73.             {
  74.                CptArray--;
  75.                ShurikensBonusControl(EnemiesObjArray[CptArray],ShurikensBonusMovieClip);
  76.             }
  77.             SpriteObj.ShurikensArray[CptShuriken]._visible = 0;
  78.             AddScore += G_ENEMY_SCORE_VALUE;
  79.          }
  80.       }
  81.       CptShuriken++;
  82.    }
  83.    return AddScore;
  84. }
  85. function EnemiesControl(EnemiesObjArray)
  86. {
  87.    var Cpt;
  88.    var CurrentEnemy;
  89.    Cpt = 0;
  90.    while(Cpt < EnemiesObjArray.length)
  91.    {
  92.       CurrentEnemy = EnemiesObjArray[Cpt];
  93.       if(CurrentEnemy.IsBlinking())
  94.       {
  95.          CurrentEnemy.DoBlink();
  96.          CurrentEnemy.ContinueMoveIfBlinkFinished();
  97.       }
  98.       else if(CurrentEnemy.IsDead())
  99.       {
  100.          CurrentEnemy.DoResurrectionIfTimeElapsed();
  101.       }
  102.       Cpt++;
  103.    }
  104. }
  105. function ShurikensBonusControl(EnemyObj, ShurikensBonusMovieClip)
  106. {
  107.    if(ShurikensBonusMovieClip._currentFrame == 1 && !Math.floor(Math.random() * G_RANDOM_BONUS_SHURIKENS))
  108.    {
  109.       ShurikensBonusMovieClip._x = EnemyObj.Clip._x + EnemyObj.Clip.Enemy._x;
  110.       ShurikensBonusMovieClip._y = EnemyObj.Clip._y;
  111.       ShurikensBonusMovieClip.play();
  112.    }
  113. }
  114. function ContinueBossBlink(BossMovieClip, BlinkValue)
  115. {
  116.    if(BlinkValue & 1)
  117.    {
  118.       BossMovieClip._visible = 1;
  119.    }
  120.    else
  121.    {
  122.       BossMovieClip._visible = 0;
  123.    }
  124.    BlinkValue--;
  125.    return BlinkValue;
  126. }
  127. function BossHitsBySprite(BossHitMovieClip, SpriteObject)
  128. {
  129.    var SBounds = SpriteObject.Clip.getBounds(_root);
  130.    var XValue;
  131.    if(SpriteObject.Direction == G_RIGHT_DIRECTION)
  132.    {
  133.       XValue = SBounds.xMax;
  134.    }
  135.    else
  136.    {
  137.       XValue = SBounds.xMin;
  138.    }
  139.    return BossHitMovieClip.hitTest(XValue,SBounds.yMin,true) || BossHitMovieClip.hitTest(XValue,SpriteObject.Clip._y,true) || BossHitMovieClip.hitTest(XValue,SBounds.yMax,true);
  140. }
  141. function BossHitsByShurikens(BossHitMovieClip, ShurikensArray)
  142. {
  143.    var HitValue;
  144.    var CptShuriken;
  145.    HitValue = 0;
  146.    CptShuriken = 0;
  147.    while(!HitValue && CptShuriken < ShurikensArray.length)
  148.    {
  149.       if(ShurikensArray[CptShuriken]._visible)
  150.       {
  151.          HitValue = BossHitMovieClip.hitTest(ShurikensArray[CptShuriken]._x,ShurikensArray[CptShuriken]._y,true);
  152.       }
  153.       CptShuriken++;
  154.    }
  155.    return HitValue;
  156. }
  157. function SpriteHitsByBoss(BossHitMovieClip, SpriteObject)
  158. {
  159.    var SpriteBounds = SpriteObject.Clip.getBounds(_root);
  160.    var Average;
  161.    var XCenter;
  162.    var YCenter;
  163.    Average = (SpriteBounds.xMax - SpriteBounds.xMin) / 2;
  164.    YCenter = SpriteObject.Clip._y;
  165.    if(SpriteObject.IsJumping() || SpriteObject.IsFalling() || SpriteObject.IsJumpingFromWall() || SpriteObject.IsWaitingOnWall())
  166.    {
  167.       XCenter = SpriteObject.Clip._x;
  168.    }
  169.    else if(SpriteObject.Direction == G_RIGHT_DIRECTION)
  170.    {
  171.       SpriteBounds.xMax -= Average;
  172.       XCenter = (SpriteBounds.xMin + SpriteBounds.xMax) / 2;
  173.    }
  174.    else
  175.    {
  176.       SpriteBounds.xMin += Average;
  177.       XCenter = (SpriteBounds.xMin + SpriteBounds.xMax) / 2;
  178.    }
  179.    return BossHitMovieClip.hitTest(SpriteBounds.xMin,SpriteBounds.yMin,true) || BossHitMovieClip.hitTest(SpriteBounds.xMin,SpriteBounds.yMax,true) || BossHitMovieClip.hitTest(SpriteBounds.xMax,SpriteBounds.yMin,true) || BossHitMovieClip.hitTest(SpriteBounds.xMax,SpriteBounds.yMax,true) || BossHitMovieClip.hitTest(XCenter,YCenter,true);
  180. }
  181. CEnemy.prototype.IsBlinking = function()
  182. {
  183.    return this.BlinkValue;
  184. };
  185. CEnemy.prototype.DoBlink = function()
  186. {
  187.    if(this.BlinkValue & 1)
  188.    {
  189.       this.Clip._visible = 1;
  190.    }
  191.    else
  192.    {
  193.       this.Clip._visible = 0;
  194.    }
  195.    this.BlinkValue--;
  196. };
  197. CEnemy.prototype.ContinueMoveIfBlinkFinished = function()
  198. {
  199.    if(!this.BlinkValue)
  200.    {
  201.       this.Clip.play();
  202.    }
  203. };
  204. CEnemy.prototype.ApplyTouched = function()
  205. {
  206.    var CurrentX;
  207.    var CurrentY;
  208.    var NewTime;
  209.    var Point;
  210.    this.CurrentPower--;
  211.    if(this.CurrentPower)
  212.    {
  213.       this.Clip.stop();
  214.       this.BlinkValue = this.MaxBlink;
  215.       return 0;
  216.    }
  217.    this.Clip.stop();
  218.    this.Clip.Enemy.play();
  219.    NewTime = new Date();
  220.    this.CurrentResurrectionTime = NewTime.getTime() / 1000;
  221.    delete NewTime;
  222.    return 1;
  223. };
  224. CEnemy.prototype.IsDead = function()
  225. {
  226.    return !this.CurrentPower;
  227. };
  228. CEnemy.prototype.DoResurrectionIfTimeElapsed = function()
  229. {
  230.    var NewTime = new Date();
  231.    if(NewTime.getTime() / 1000 - this.CurrentResurrectionTime >= this.MaxResurrectionTime)
  232.    {
  233.       this.CurrentPower = this.MaxPower;
  234.       this.Clip.gotoAndPlay(1);
  235.       this.CurrentResurrectionTime = 0;
  236.       this.BlinkValue = 10;
  237.    }
  238.    delete NewTime;
  239. };
  240.